Image processing has traditionally been undertaken using either devices designed specifically to provide image processing (e.g., application specific integrated circuits (ASICs)) or more general purpose devices (e.g., digital signal processors (DSPs)) where the image processing has been adapted to match existing device functionality. Although ASICs may provide specific functionality they are also costly to design, have long development cycles and tend to be inflexible. While DSPs may, on the other hand, be more flexible than ASICs they are also more difficult to optimize for image processing.